Although computers were once isolated and had minimal or little interaction with other computers, computers now interact with a wide variety of other computers through Local Area Networks (LANs), Wide Area Networks (WANs), dial-up connections, and the like. With the wide-spread growth of the Internet, connectivity between computers has become more important and has opened up many new applications and technologies. The growth of large-scale networks, and the wide-spread availability of low-cost personal computers, has fundamentally changed the way that many people work, interact, communicate, and play.
One increasing popular form of networking may generally be referred to as remote presentation systems, which can use protocols such as Remote Desktop Protocol (RDP), Independent Computing Architecture (ICA), and others to share a desktop and other applications with a remote client. Such computing systems typically transmit the keyboard presses and mouse clicks or selections from a client computing device to a server computing device, relaying the screen updates back in the other direction over a communications network (e.g., the INTERNET™). As such, the user has the experience as if his session is being executed entirely on his client computer when in reality the client is only sent screenshots, or frames, of the applications as they appear on the server side.
In an environment where many remote presentation sessions are to be served concurrently, such as for a large corporation, these remote presentation sessions may be served by a grouped plurality of servers, commonly referred to as a server farm. The servers may perform different role services (for instance, one server may function as a connection broker that assigns incoming remote presentation session requests to other servers that serve remote presentation sessions). Current techniques for managing such server farms require an administrator to configure and manage multiple roles that span a plurality of physical servers. This is a time consuming process, and one that requires an administrator to have a deep understanding of the various roles of the server farm, and associated dependencies.